The present invention relates to the field of data processing systems. Specifically, the present invention relates to a system for efficiently synchronizing information between multiple devices utilizing a central device.
As the components required to build a computer system have reduced in size, new categories of computer systems have emerged. One of the new categories of computer systems is the xe2x80x9cpalmtopxe2x80x9d computer system. A palmtop computer system is a computer that is small enough to be held in the hand of a user and can be xe2x80x9cpalm-sized.xe2x80x9d Most palmtop computer systems are used to implement various Personal Information Management (PIM) applications such as an address book, a daily organizer and electronic notepads, to name a few.
It has proven convenient to exchange data between a computer system and a palmtop computer using a communication interface, such as a serial or parallel input port. Alternatively, infrared (IR) or wireless radio frequency communication may be used for the interface.
It has also proven to be useful to have multiple devices which share common information. For example, a single user may have an address/phone book file on a palmtop (otherwise known as a personal digital assistant (PDA)), a desktop, and a phone. Alternatively, multiple users may have PDAs with related data sets. It is extremely useful for users to have a way to keep the information in specific corresponding files on each of multiple devices synchronized.
A number of programs today transfer data between PDAs and personal computer systems (PCs), but they are currently limited in functionality. For instance, some programs transfer all the information from the PDA to the PC without regard for the prior content on the PC. These programs assume that changes to that particular data are only made on the PDA, and that the changes made on the PDA take precedence over any changes made on the PC. As a result, any independent updates made directly on the PC will be lost.
Some conventional programs allow changes which were made on either a PC or a single PDA to be exchanged between the two computer systems. These programs assume that only two devices are involved and flag changed records on both devices. Consequently, these programs can do a relatively fast synchronization by simply exchanging flagged (modified) records, without doing a time-consuming comparison. However, these conventional programs do not provide a mechanism for synchronizing with three or more devices. Thus, the user is unable to accurately synchronize the phone files or a second PDA with those on the PC and the first PDA.
Other conventional programs perform a slower synchronization in which it is not assumed that the two devices being synchronized have an exclusive relationship. Thus, whatever change flags which do exist in the files cannot be trusted as being reliable. Therefore, these programs compare all records in the files in both devices with a third back-up file. The back-up file contains the result of the previous synchronization between these two devices. The comparison produces a fourth file, which is copied to both devices files, as well as to the back-up file. These synchronization programs work best with a high bandwidth connection between the two devices being synchronized. This is because large amounts of data are transferred back-and-forth because all records in each file must be compared. Consequently, the programs can be time consuming and also expensive if the user is paying for connection time on, for example a cellular phone link.
Still other conventional systems do not allow a mechanism for a device with limited memory to easily synchronize with other devices. This is because they require all changes from other devices to be sent to all devices, regardless of whether each device has enough memory to hold a large data files.
Some conventional systems locate virtually all synchronization related software on the host computer system. Therefore, they do not allow two peer devices, such as two PDAs, to perform synchronization-type operations directly.
Thus, a need has arisen for a system which allows multiple devices to be synchronized without connecting them all together at once. A further need has arisen for such a system which works efficiently with a bandwidth limited connection. A still further need has arisen for such a system when some of the devices have limited memory capacity. A still further need exists for a system which allows two devices to perform a synchronization-type operation without the use of a host computer system acting as an intermediary.
The present invention provides a system for allowing multiple devices to synchronize their files without the need for a single mass synchronization. The present invention works well in a bandwidth-limited environment. The present invention works well when one or more of the devices to be synchronized has limited memory capacity. The present invention also allows two devices to perform synchronization-type operations without the use of a host system. The present invention provides these advantages and others not specifically mentioned above but described in the sections to follow.
A system of synchronizing multiple devices utilizing a host system is disclosed. In one embodiment, the present invention first synchronizes a first device with the host system. Next, the present invention synchronizes a second device with the host system. In so doing, the second device receives all changes which were entered directly into the host system, along with changes from the first device as of the last synchronization between the first device and the host system. If desired, the user may then synchronize the first device with the host system to get the changes from the second device. One embodiment of the present invention allows for any number of devices to be synchronized in this fashion, without having to connect the devices together for a single synchronization. Another embodiment of the present invention allows two devices to perform a pseudo-synchronization process. The pseudo-synchronization process allows the two devices to share recent changes with each other immediately, without the use of the host system.
One embodiment of the present invention stores pending changes for each device in a transaction log on the host device. When each device synchronizes, its changes are stored in each of the other device""s logs. Conversely, the contents of a device""s own log are transferred to the device when it synchronizes with the host system. In this fashion, a fast synchronization is possible with each device treated as peers.
In the embodiment of the present invention using pseudo-synchronization, one device is treated as a primary device and all others as secondary. For example, the primary device may be a PDA and a secondary device may be a phone. In this fashion, the synchronization with the PDA is always a fast synchronization, while the synchronization with the phone is a slower process. This embodiment may be preferable when using a secondary device for which synchronization is done overnight over a high bandwidth/low cost connection. For example, a user may leave the phone charging overnight with the slower synchronization taking place during a portion of that time.
Still another embodiment of the present invention makes use of a backup file on the host device. Changed records from a device are sent to the backup file, which is reconciled with a corresponding file on the host device. This embodiment takes advantage of the fast processing speed of today""s computers. By only sending changed records, as opposed to the entire file, connection time is saved, which is especially advantageous when using a wireless connection.
Yet another embodiment of the present invention allows the user to delete records on a device without having the deletions propagate throughout the network of devices. This can be very useful when using a memory-limited device, or a device in which the user simply does not wish to have a large database to search through.